package cn.zyjblogs.sms.provider;


import cn.zyjblogs.sms.common.SmsRequest;
import cn.zyjblogs.sms.common.SmsResponse;
import cn.zyjblogs.sms.task.constant.ProviderType;
import cn.zyjblogs.sms.task.dto.TaskResultDTO;
import cn.zyjblogs.starter.common.entity.dto.Kv;
import cn.zyjblogs.starter.common.utils.string.StringUtils;
import com.alibaba.fastjson2.JSON;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author zhuyijun
 */
public interface SmsGranter {
    /**
     * 获取对应处理器
     * @return
     */
    SmsGranter getGranter(ProviderType providerType);

    /**
     * 短信发送 ，手机号为多个以逗号隔开
     *
     * @param smsRequest
     * @return
     */
    TaskResultDTO sendSms(ProviderType providerType, SmsRequest smsRequest);

    default Map<String, String> parseParam(String param) {
        Map<String, String> map = new LinkedHashMap<>();
        if (StringUtils.isNotEmpty(param)) {
            List<Kv> list = JSON.parseArray(param,Kv.class);
            for (Kv kv : list) {
                map.put((String) kv.getK(),(String)  kv.getV());
            }
        }
        return map;
    }
}
